// 1- createElement是一个函数
// 2- createElement接收参数
//    2-1- 第一个参数是标签名
//    2-2- 第二个参数是属性
//    2-3- 第三个参数开始即是包裹的内容。
// 3- 返回的是一个对象，该对象拥有的属性：
//    $$typeof:Symbol(react.element)
//    key:null,
//    props:null,
//    ref:null
//    type


export const createElement = function(type,props,...children){
	const virDOM = {
		$$typeof:Symbol("react.element"),
		key:null,
		props:{},
		ref:null,
		type
	};
	// 记住：在项目开发过程中如果出现赋值的场景，考虑是否需要深复制
	if(typeof  props !== "object"){
		throw new TypeError("props接收的类型应该是一个对象");
		return;
	}else{
		virDOM.props = props??{};// virDOM.props = null;
	}
	console.log(children)
	if(children.length === 1) virDOM.props.children = children[0];
	else if(children.length>1)  virDOM.props.children = [...children];
	return virDOM;
}


